#pragma once
#include "Assistant.h"
#include "Ray.h"
#include "Material.h"

struct IsectData
{
	float t;
	float u, v;
	//uint32_t index;
};

class CPrimitive
{

protected:
	CVector				*m_Origin;
	CLightIntensity		*m_Color;
	CMaterial			*m_Material;

public:
	bool				m_IsMesh;

	CPrimitive(void);
	virtual ~CPrimitive(void);

	CVector*			GetOrigin() { return m_Origin; };
	void				SetOrigin(CVector _vec) { m_Origin = new CVector(_vec); };
	CLightIntensity*	GetColor() { return m_Color; };
	void				SetColor(CLightIntensity _vec) { m_Color = new CLightIntensity(_vec); };
	virtual int			Intersect(CRay&, IsectData &isectData) = 0;	
};

